/**
 * 系统管理员实体定义
 * @description 定义系统管理员的数据结构和属性
 */
export interface SysAdmin extends Record<string, unknown> {
  /** 管理员ID */
  id: number;
  /** 管理员用户名 */
  admin_name: string;
  /** 管理员昵称 */
  nick_name: string;
  /** 密码 */
  password: string;
  /** 手机号 */
  mobile: string;
  /** 邮箱 */
  email: string;
  /** 头像 */
  avatar: string;
  /** 性别 (0:女 1:男) */
  sex: number;
  /** 部门ID */
  dept_id: number;
  /** 备注 */
  remark: string;
  /** 状态 (0:禁用 1:启用) */
  status: number;
  /** 登录IP */
  login_ip: string;
  /** 登录时间 */
  login_time: number;
  /** 创建时间 */
  time: number;
  /** 更新时间 */
  update_time: number;
  /** 是否删除 (0:未删除 1:已删除) */
  disabled: number;
  /** 第三方额外id */
  ext_id: string;
}

/**
 * 创建管理员时的数据类型
 * @description 排除id字段的管理员数据
 */
export type CreateSysAdminDto = Omit<SysAdmin, 'id'>;

/**
 * 更新管理员时的数据类型
 * @description 排除id和time字段的部分管理员数据
 */
export type UpdateSysAdminDto = Partial<Omit<SysAdmin, 'id' | 'time'>>;

/**
 * 管理员查询条件类型
 * @description 用于列表查询的条件参数
 */
export type SysAdminQueryDto = Partial<
  Pick<SysAdmin, 'admin_name' | 'nick_name' | 'status' | 'disabled'>
>;
